package com.zhonghui.wms.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zhonghui.common.annotation.Excel;
import com.zhonghui.common.core.domain.BaseEntity;
import com.zhonghui.wms.domain.WmsOutboundApplicationDetails;
import com.zhonghui.wms.domain.WmsWarehousingApplicationDetails;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

/**
 * 智能仓储WMS-出库申请对象 wms_outbound_application
 *
 * @author zhonghui
 * @date 2022-05-23
 */
@ApiModel("智能仓储WMS-出库申请对象出参")
public class WmsOutboundApplicationVo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 编号 */
    @ApiModelProperty("编号")
    private Long id;

    /** 单据号 */
    @Excel(name = "单据号")
    @ApiModelProperty("单据号")
    private String documentNo;

    /** 关联单据号id */
    @Excel(name = "关联单据号id")
    @ApiModelProperty("关联单据号id")
    private Long documentNoId;

    /** 关联单据号 */
    @Excel(name = "关联单据号")
    @ApiModelProperty("关联单据号")
    private String associationDocumentNo;

    /** 业务类型 */
    @Excel(name = "业务类型")
    @ApiModelProperty("业务类型")
    private Long businessType;

    /** 客户编号 */
    @Excel(name = "客户编号")
    @ApiModelProperty("客户编号")
    private Long customerId;

    /** 单据状态 */
    @Excel(name = "单据状态")
    @ApiModelProperty("单据状态")
    private Long documentStatus;

    /** 合同号 */
    @Excel(name = "合同号")
    @ApiModelProperty("合同号")
    private String contractNumber;

    /** 合同类型 */
    @Excel(name = "合同类型")
    @ApiModelProperty("合同类型")
    private Long contractType;

    /** 申请类型 */
    @Excel(name = "申请类型")
    @ApiModelProperty("申请类型")
    private Long applicationType;

    /** 申请人 */
    @Excel(name = "申请人")
    @ApiModelProperty("申请人")
    private Long applicant;

    /** 申请日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "申请日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("申请日期")
    private Date applicationDate;

    /** 申请状态 */
    @Excel(name = "申请状态")
    @ApiModelProperty("申请状态")
    private Long applicationStatus;

    /** 审核人 */
    @Excel(name = "审核人")
    @ApiModelProperty("审核人")
    private Long approved;

    /** 审核日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("审核日期")
    private Date approvedDate;

    /** 审核状态 */
    @Excel(name = "审核状态")
    @ApiModelProperty("审核状态")
    private Long approvedStatus;

    /** 审核意见 */
    @Excel(name = "审核意见")
    @ApiModelProperty("审核意见")
    private String approvedComments;

    /** 申请人名称 */
    @Excel(name = "申请人名称")
    @ApiModelProperty("申请人名称")
    private String applicantName;

    /** 审核人名称 */
    @Excel(name = "审核人名称")
    @ApiModelProperty("审核人名称")
    private String approvedName;

    /** 客户名称 */
    @Excel(name = "客户名称")
    @ApiModelProperty("客户名称")
    private String customerName;

    /** 智能仓储WMS-出库申请明细信息 */
    @ApiModelProperty("智能仓储WMS-出库申请明细信息")
    private List<WmsOutboundApplicationDetails> wmsOutboundApplicationDetailsList;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getDocumentNo() {
        return documentNo;
    }

    public void setDocumentNo(String documentNo) {
        this.documentNo = documentNo;
    }

    public Long getDocumentNoId() {
        return documentNoId;
    }

    public void setDocumentNoId(Long documentNoId) {
        this.documentNoId = documentNoId;
    }

    public String getAssociationDocumentNo() {
        return associationDocumentNo;
    }

    public void setAssociationDocumentNo(String associationDocumentNo) {
        this.associationDocumentNo = associationDocumentNo;
    }

    public Long getBusinessType() {
        return businessType;
    }

    public void setBusinessType(Long businessType) {
        this.businessType = businessType;
    }

    public Long getCustomerId() {
        return customerId;
    }

    public void setCustomerId(Long customerId) {
        this.customerId = customerId;
    }

    public Long getDocumentStatus() {
        return documentStatus;
    }

    public void setDocumentStatus(Long documentStatus) {
        this.documentStatus = documentStatus;
    }

    public String getContractNumber() {
        return contractNumber;
    }

    public void setContractNumber(String contractNumber) {
        this.contractNumber = contractNumber;
    }

    public Long getContractType() {
        return contractType;
    }

    public void setContractType(Long contractType) {
        this.contractType = contractType;
    }

    public Long getApplicationType() {
        return applicationType;
    }

    public void setApplicationType(Long applicationType) {
        this.applicationType = applicationType;
    }

    public Long getApplicant() {
        return applicant;
    }

    public void setApplicant(Long applicant) {
        this.applicant = applicant;
    }

    public Date getApplicationDate() {
        return applicationDate;
    }

    public void setApplicationDate(Date applicationDate) {
        this.applicationDate = applicationDate;
    }

    public Long getApplicationStatus() {
        return applicationStatus;
    }

    public void setApplicationStatus(Long applicationStatus) {
        this.applicationStatus = applicationStatus;
    }

    public Long getApproved() {
        return approved;
    }

    public void setApproved(Long approved) {
        this.approved = approved;
    }

    public Date getApprovedDate() {
        return approvedDate;
    }

    public void setApprovedDate(Date approvedDate) {
        this.approvedDate = approvedDate;
    }

    public Long getApprovedStatus() {
        return approvedStatus;
    }

    public void setApprovedStatus(Long approvedStatus) {
        this.approvedStatus = approvedStatus;
    }

    public String getApprovedComments() {
        return approvedComments;
    }

    public void setApprovedComments(String approvedComments) {
        this.approvedComments = approvedComments;
    }

    public String getApplicantName() {
        return applicantName;
    }

    public void setApplicantName(String applicantName) {
        this.applicantName = applicantName;
    }

    public String getApprovedName() {
        return approvedName;
    }

    public void setApprovedName(String approvedName) {
        this.approvedName = approvedName;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public List<WmsOutboundApplicationDetails> getWmsOutboundApplicationDetailsList() {
        return wmsOutboundApplicationDetailsList;
    }

    public void setWmsOutboundApplicationDetailsList(List<WmsOutboundApplicationDetails> wmsOutboundApplicationDetailsList) {
        this.wmsOutboundApplicationDetailsList = wmsOutboundApplicationDetailsList;
    }
}
